ENHANCED RISC Dear reader of this benchmark The following general comments should be noted on C Code benchmarking: *Our goal with this presentation is to support our claim that we have a very High Level Language (in this case `C') suitable architecture. *The results may vary from application to application, but in average you will find AVR among the most code efficient architectures in the market. *There does not exist any standard to measure C Code efficiency, hence we have collected real applications from customers. There is, however, an emerging standard for measuring C Code efficiency. The EEMBC (EDN Embedded Microprocessor Benchmark Consortium) are currently developing a benchmark suite of real and synthetic applications written in C which we will look into when it becomes available. *Since not all code could be compiled for all compilers, all the indexes are relative to AVR. Only the applications that could be compiled for both two applications are summed, and the ratio between the code sizes is displayed. *Since not all code could be compiled for all compilers, all the indexes are relative to AVR. Only the applications that could be compiled for both two applications are used, and the ratio between every two applications is computed. The averaged ratio is displayed in the figure. *Most of the compilers used are from IAR. The advantage of using the same compiler company for most of the processors is that the difference in the code size does not depend on the global optimization which all compilers will benefit from, but to a larger degree of architectural differences. *Some of the compilers exist in later versions, so the results might be different for some of the microcontrollers. The AVR C Compiler is, compared to many of our competitors, a relatively young compiler. The AVR C Compiler still gains significant code size decrease in every new release of the compiler. By writing the code with the AVR architecture a smaller code size can be achieved. The code in the benchmark is NOT optimized for AVR, but the result is still very good ! Enjoy your reading 98/08/24 ENHANCED RISC C Code Benchmarks 98/08/24 ENHANCED RISC C Code Benchmarks z z z z z Nine applications Based on customer code Various application areas Byte usage in individual applications Summarized results reported as - Normalized Accumulated Results - Averaged Normalized Results 98/08/24 ENHANCED RISC Pager protocol Three layer protocol Includes simple driver 8000 #Bytes z z 6000 4000 2000 0 68HC11 AVR Thum b H8/500 Z80 80196 H8/300H Arm 7 80C51 H8/300 98/08/24 ENHANCED RISC Analog Telephone I z z #Bytes SIM Interface Parts of display driver 6000 5000 4000 3000 2000 1000 0 AVR Thum b 68HC11 Z80 H8/500 80196 80C51 H8/300H ARM7 H8/300 98/08/24 ENHANCED RISC Analog Telephone II Automatically generated code State Machine based #Bytes z z 30000 25000 20000 15000 10000 5000 0 AVR T humb 68HC11 H8/500 ARM7 H8/300H H8/300 80C51 98/08/24 ENHANCED RISC Reed-Solomon Reed-Solomon Encoder/Decoder 8000 #Bytes z 6000 4000 2000 0 Thumb H8/500 ARM7 AVR 68HC11 H8/300H Z80 80C51 H8/300 98/08/24 ENHANCED RISC Car Radio Control Skeleton application Control Flow and Bitfields #Bytes z z 1200 1000 800 600 400 200 0 Z80 AVR 80C51 H8/500 68HC11 Thumb H8/300H ARM7 H8/300 98/08/24 ENHANCED RISC C Bitfields Benchmark code from customer 8 and 16 bit bitfield variables 2500 2000 #Bytes z z 1500 1000 500 0 AVR Thumb Z80 68HC11 80C51 H8/500 ARM7 H8/300H H8/300 98/08/24 ENHANCED RISC Analog Telephone III Representative collection of routines from an analog telephone application #Bytes z 1200 1000 800 600 400 200 0 H8/500 68HC11 AVR Z80 H8/300H 80C51 H8/300 98/08/24 ENHANCED RISC DES Algorithm Encryption/Decryption algorithm #Bytes z 3000 2500 2000 1500 1000 500 0 Thumb H8/500 AVR 68HC11 Z80 ARM7 H8/300H 80C51 H8/300 98/08/24 ENHANCED RISC Navigation Application z z Complete application Communication, measurements, computations #Bytes 15000 10000 5000 0 H8/500 T humb 68HC11 AVR Z80 80C51 ARM 7 98/08/24 ENHANCED RISC Accumulated over all Benchmarks Indexes based on accumulated sizes Large applications counts more than small 2,5 Normalized z z 2 1,5 1 0,5 0 AV R Thum b H8/500 68HC11 Z80 80196 ARM7 H8/300H 80C51 H8/300 98/08/24 ENHANCED RISC Normalized over all Benchmarks Averaged indexes from all applications All applications counts evenly 2 Normalized z z 1,5 1 0,5 0 AVR Thum b H8/500 68HC11 Z80 80196 ARM7 H8/300H 80C51 H8/300 98/08/24 ENHANCED RISC Summary z Nine C Code Benchmarks from various application areas z No single microcontroller best for all applications z AVR in the top range for all the applications 98/08/24 ENHANCED RISC Compilers Used z z z z z z z z z AVR: IAR ICCA90 version 1.40 80C51: IAR ICC8051 version 5.20 Thumb: ARM tcc version 1.02b ARM: ARM armcc version 4.66b 80196: IAR icc196 version 5.20a Z80: IAR iccz80 version 4.03a H8/300(H): IAR icch83 version 3.22 H8/500: IAR icch8500 version 2.92g 68HC11: IAR icc6811 version 4.20B 98/08/24